From e9c1333c297acd975a238a692f7561ea8086c51a Mon Sep 17 00:00:00 2001 From: oliskoli Date: Tue, 21 Nov 2006 21:10:42 +0000 Subject: [PATCH] Let mkrpm work without root login and use mkspec. --- Makefile.in | 4 +- tools/mkrpm | 117 +++++++++++++++++----------------------------------- 2 files changed, 40 insertions(+), 81 deletions(-) diff --git a/Makefile.in b/Makefile.in index 8abb6937f..5db824248 100644 --- a/Makefile.in +++ b/Makefile.in @@ -280,8 +280,8 @@ release-upload: /tmp/gpsbabel-$(VERSIOND).tar.gz /tmp/gpsbabel-$(VERSIOND).zip release: release-sourcecheck release-tarball release-winbuild release-rpm release-upload -rpm: clean - tools/mkrpm $(VERSD) $(RELEASE) +rpm: + tools/mkrpm $(VERSD) $(RELEASE) $(WEB) mac-release: mkdir -p usr/bin usr/share/gpsbabel/doc diff --git a/tools/mkrpm b/tools/mkrpm index b83832c93..9512266b1 100755 --- a/tools/mkrpm +++ b/tools/mkrpm @@ -1,10 +1,12 @@ #!/bin/sh # -SPEC=gpsbabel.spec -TAR_IGNORE="--exclude CVS" VERSION=$1 RELEASE=$2 +WEB=$3 + +SPEC=gpsbabel.spec +TAR_IGNORE="--exclude CVS" if test -x /usr/bin/rpmbuild; then RPM=rpmbuild @@ -12,82 +14,39 @@ else RPM=rpm fi -DIR=`pwd` -TEMPDIR=/tmp/gpsbabel-rpm.$$ -mkdir -p $TEMPDIR -trap "cd $DIR; rm -fr $TEMPDIR" 0 1 2 3 15 - -function addspec() -{ - echo "$*" >> $SPEC -} - -# create spec file needed for rpm generation -function mkspec() -{ - local REL=`echo $RELEASE | sed 's/^-//'` - test "$REL" == "" && REL=0 +test -f gpsbabel.html || exit 1 - echo -n "" > $SPEC # create the file - - addspec "Summary: GPSBabel" - addspec "Name: gpsbabel" - addspec "Version: $VERSION" - addspec "Release: $REL" - addspec "License: GPL" - addspec "Group: File tools" - addspec "Source: %{name}-%{version}.tar.bz2" - addspec "BuildRoot: %{_tmppath}/%{name}-%{version}-build" - addspec "URL: http://www.gpsbabel.org" - addspec "" - - addspec "%description" - addspec "Converts GPS waypoint, route and track data from one format type to another." - addspec "" - - addspec "Authors:" - addspec "--------" - - cat $DIR/AUTHORS >> gpsbabel.spec - - addspec "" - addspec "%prep" - addspec "%setup -q" - addspec "" - - addspec "%build" - addspec "./configure" - addspec "make" - addspec "" - addspec "%install" - addspec "rm -rf " - addspec "mkdir -p %{buildroot}/usr/bin " - addspec "install -m 555 gpsbabel %{buildroot}/usr/bin/gpsbabel " - addspec "" - - addspec "%files" - addspec "%defattr(-,root,root)" - addspec "/usr/bin/gpsbabel" - addspec "%doc README* COPYING CHANGELOG AUTHORS readme.xml" - addspec "" - addspec "%changelog" -} - -cd $TEMPDIR - -ln -sf $DIR gpsbabel-$VERSION - -mkspec - -cat $DIR/../babelweb/changes.html | $DIR/tools/mkchangelog > gpsbabel-$VERSION/CHANGELOG -cat gpsbabel-$VERSION/CHANGELOG >> gpsbabel.spec - -cp gpsbabel.spec gpsbabel-$VERSION/ -rm -f gpsbabel.spec - -tar -cj $TAR_IGNORE -f gpsbabel-$VERSION.tar.bz2 gpsbabel-$VERSION/. -rm -f gpsbabel-$VERSION - -${RPM} -ta gpsbabel-$VERSION.tar.bz2 +SRC=`pwd` +TEMPDIR=/tmp/gpsbabel-rpm.$$ -cd $DIR +mkdir -p $TEMPDIR +trap "rm -fr $TEMPDIR" 0 1 2 3 15 + +mkdir -p $TEMPDIR/BUILD $TEMPDIR/RPMS $TEMPDIR/SPECS \ + $TEMPDIR/SOURCES $TEMPDIR/SRPMS $TEMPDIR/TMP $TEMPDIR/install + +echo "Generate rpm spec file..." +sh $SRC/tools/mkspec "$WEB" "$VERSION" "$RELEASE" > "$TEMPDIR/SPECS/gpsbabel.spec" +cp -apr ./ $TEMPDIR/TMP/gpsbabel-$VERSION + +# +pushd $TEMPDIR/TMP/gpsbabel-$VERSION +echo "Cleaning source..." +make more-clean > /dev/null 2>&1 +find . -type d -name CVS -exec rm -rf \{\} \; > /dev/null 2>&1 +find . -type d -name "autom4*" -exec rm -rf \{\} \; > /dev/null 2>&1 + +echo "Add needed files..." +cp -ap $SRC/gpsbabel.html ./ +cp -ap $SRC/CHANGELOG ./ + +echo "Create rpm source tarball..." +cd .. +# --verbose +tar --owner=0 --group=0 -czf ../SOURCES/gpsbabel-$VERSION.tgz gpsbabel-$VERSION +echo "And now create rpm packages..." +${RPM} -ba \ + --define "_topdir $TEMPDIR" \ + --define "buildroot $TEMPDIR/install" \ + $TEMPDIR/SPECS/gpsbabel.spec +find ../. -type f -name "*.rpm" -exec cp -apf \{\} /tmp/ \; -- 2.30.2